package cn.jinbyte.web.config;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

/**
 * CSRF防护配置
 *
 * @author jinty
 */
@Data
public class CsrfProperties {
    /**
     * 是否启用CSRF防护
     */
    private boolean enabled = true;

    /**
     * 需要验证的HTTP方法
     */
    private List<String> validatedMethods = List.of("POST", "PUT", "DELETE", "PATCH");

    /**
     * 排除的路径
     */
    private List<String> excludePaths = new ArrayList<>();

    /**
     * CSRF令牌在请求头中的名称
     */
    private String headerName = "X-CSRF-Token";

    /**
     * CSRF令牌在请求参数中的名称
     */
    private String parameterName = "_csrf";

    /**
     * CSRF令牌在会话中的属性名
     */
    private String sessionAttributeName = "CSRF_TOKEN";

    /**
     * 令牌过期时间(秒)
     */
    private int tokenExpirationSeconds = 3600;
}
